home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group94b.txt
/
000075_icon-group-sender _Wed Oct 19 05:47:00 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1995-02-09
|
18KB
Received: by cheltenham.cs.arizona.edu; Wed, 19 Oct 1994 06:16:29 MST
To: icon-group-l@cs.arizona.edu
Date: 19 Oct 1994 05:47:00 GMT
From: tchrist@usenix.org (Tom Christiansen)
Message-Id: <382bsk$lu5@csnews.cs.Colorado.EDU>
Organization: USENIX Association, Berkeley, CA
Sender: icon-group-request@cs.arizona.edu
References: <Cxw8oI.Dso@usenix.org>
Subject: Abstracts from Upcoming VHLL Symposium
Errors-To: icon-group-errors@cs.arizona.edu
Here are some abstracts for next week's conference.
ABSTRACTS from the upcoming USENIX Very High level Languages Symposium
October 26-28, 1994
Santa Fe, New Mexico
=============================================================
TkPerl-- A port of the Tk toolkit to Perl5
Malcolm Beattie
Oxford University Computing Services
mbeattie@sable.ox.ac.uk
ABSTRACT: TkPerl is a port (work in progress) of the
Tk[1] toolkit to Perl5[2]. It takes advantage of
Perl5's object oriented features and magic variables
to implement the Tk toolkit in Perl5. Nothing
passes through the Tcl parser so knowledge of Tcl
syntax is not required to use TkPerl. TkPerl is
freeware (distributed under the GNU General Public
License) and is currently in alpha testing. Section
1 of the paper introduces TkPerl and is followed by
a brief section on its target uses.. Since TkPerl
relies heavily on the object oriented features of
Perl5 (which is itself only just into beta test),
section 3 explains how Perl5 implements classes, ob-
jects and methods. Section 4 discusses the differ-
ences between Tk/Tcl and TkPerl both at scripting
level and at C level. Section 5 looks at some of
the porting issues and problems and how Tcl conven-
tions affect the design of Tk itself. Section 6 ex-
plains the current intentions for the future of
TkPerl and section 7 gives availability information.
==================================
libscheme: Scheme as a C Library
Brent W. Benson Jr.
Harris Computer Systems
Brent.Benson@mail.csd.harris.com
Abstract
Because of its small size and simplicity, Scheme is often seen as an
ideal extension or scripting language. While there are many Scheme
implementations available, their interfaces are often complex and
can get in the way of using the implementation as part of a larger
software product. The libscheme library makes the Scheme language
available as a C library. Its interface is through a single C
header file and it is easily extended with new primitive procedures,
new primitive types, and new syntax. It is portable to any system
that has an ANSI C compiler and to which Hans Boehm's popular
conservative garbage collector [1] has been ported. It has been
used to build a variety of special purpose data manipulation tools,
and as an extension language for an ethernet monitor.
==================================
END-USER SYSTEMS, REUSABILITY, AND HIGH-LEVEL DESIGN
Glenn S. Fowler (gsf@research.att.com)
John J. Snyder (jjs@research.att.com)
Kiem-Phong Vo (kpv@research.att.com)
AT&T Bell Laboratories
600 Mountain Avenue
Murray Hill, NJ 07974 USA
During the past ten years, the number of computer users
has grown by orders of magnitude. This has been brought
about by dramatic increase in computing power combined
with equally dramatic decrease in hardware costs.
Beyond "stand-alone" user applications like word
processing and spreadsheets, new classes of business
applications arise where competitive advantage is
created by empowering "end-users" with instant access to
relevant information. In many cases, code already
exists to access and process the desired information;
the challenge is finding a way to couple such processing
capabilities to individual user requests in a timely,
specific, and friendly fashion. The keys to such end-
user systems lie in high-level design and software
reusability. This paper describes a language tool EASEL
(End-User Application System Encoding Language) for
building end-user systems and experiences in its
development and deployment.
==================================
FEATURE-BASED PORTABILITY
Glenn S. Fowler (gsf@research.att.com)
David G. Korn (dgk@research.att.com)
John J. Snyder (jjs@research.att.com)
Kiem-Phong Vo (kpv@research.att.com)
AT&T Bell Laboratories
600 Mountain Avenue
Murray Hill, NJ 07974 USA
Current computing platforms encompass a dizzying variety of
hardware and software. A software application may live or die
based on how portable it is. Much has been written and talked
about how to enhance portability. But few tools are available
to support writing portable code and, more importantly, to en-
code porting knowledge. This paper describes IFFE, a tool and
an accompanying programming style that supports software por-
tability. IFFE has enabled the porting and construction of
many large software applications on heterogeneous platforms
with virtually no user intervention.
================================
Dixie Language and Interpreter Issues
R. Stockton Gaines
U. S. C. Information Sciences Institute
4674 Admiralty Way
Marina del Rey CA 90292
<gaines@isi.edu>
Abstract
Dixie (Distributed Internet Execution Environment) provides a base
for sending programs called Dixie applications to Internet sites
for execution. It provides the features generally found in operating
systems, such as a file system, multiprocessing, interprocess
communications, etc., and in addition capabilities to permit Dixie
applications to interact with resources at the local site. Security
is of first importance; it must not be possible for a Dixie
application to have an undesired effect on the local system. This
paper explains the Dixie concept and discusses language and execution
issues. The languages understood by Dixie, at least initially,
will fall in the class of Very High Level Languages, not the least
because these languages will support the security requirements of
Dixie, as well as the command language requirements. Dixie
complements these languages, and provides uniform platform independent
of the local hardware and operating systems to support Dixie
application programs.
================================
Fornax: A General-Purpose Programming Language
J. Storrs Hall
Laboratory for Computer Science Research
Hill Center, Busch Campus
Rutgers University
New Burnswick, NJ 08903
<josh@cs.rutgers.edu>
[Fornax, ``the Furnace,'' is an obscure Southern Hemisphere constellation
between Cetus and Eridanus.]
Abstract
Fornax is a very high-level programming based on pattern-matching
concepts from Snobol (and Icon) and array or "data-parallel" concepts
from APL (and J).
===============================
An Application Experience with
an Implicitly Parallel Composition Language
R. Jagannathan and Chris Dodd
SRI International
Computer Science Laboratory
333 Ravenswood Avenue
Menlo Park, California 94025
{jaggan,dodd}@csl.sri.com
Abstract:
We describe our experiences with a very high-level parallel
composition language (called GLU) that enables rapid construction of
parallel applications using sequential building blocks (extracted from
existing sequential applications) and their execution on diverse
parallel computer systems. GLU is sufficiently rich to succinctly
express different forms of parallelism --- from function parallelism
to data parallelism and from pipeline parallelism to tree parallelism.
We show by example how a typical sequential application can be
converted to a parallel one in GLU and executed on different parallel
systems. We also show how GLU has been used to convert two widely
used sequentially written, inherently parallel workstation
applications --- the make utility and a raytracing system --- to
parallel equivalents that can then be run much faster on a network of
workstations.
===============================
Graphics Programming in Icon Version 9
Clinton L. Jeffery
Division of MCSS,
The University of Texas San Antonio, TX 78249, U.S.A.
E-mail: jeffery@ringer.cs.utsa.edu
Ralph E. Griswold and Gregg M. Townsend
Department of Computer Science,
The University of Arizona, Tucson, AZ 85721, U.S.A.
E-mail: {ralph|gmt}@cs.arizona.edu
Abstract
Version 9 of the Icon programming language introduces support for graphics
and user interface programming as an extension of the existing file-based
input/output model, rather than introducing graphics as a disjoint facility.
Simplicity, generality, and portability are the primary emphases. The
result is a language in which common graphic effects are easy to write using
ordinary procedural code. Complex techniques such as event-driven
programming are optional and not forced on the programmer when they are not
needed.
==============================================
An anecdote about ML type inference
Andrew Koenig (ark@research.att.com)
AT&T Bell Laboratories
Murray Hill, New Jersey 07974
Introduction
ML strongly supports functional programming; its programmers
tend to avoid operations with side effects. Thus, for
example, instead of mutable arrays, ML programmers usually
use lists. These lists behave much like those in Lisp, with
the added requirement that all elements have the same type.1
ML lists are not themselves mutable, although the individual
elements can be of a (uniform) mutable type. In Lisp terms,
ML lists can optionally support RPLACA but not REPLACD.
Although it is possible to define a type in ML that would
support REPLACD as well, ML programmers usually don't do
this unless they need it.
==========================================
ksh - An Extensible High Level Language
David G. Korn (dgk@research.att.com)
AT&T Bell Laboratories
Murray Hill, N. J. 07974
ksh is a high level interactive script language that is a
superset of the UNIX system shell. ksh has better
programming features and better performance. Versions of
ksh are distributed with the UNIX system by many vendors;
this has created a large and growing user community in many
different companies and universities. Applications of up to
25,000 lines have been written in ksh and are in production
use.
ksh-93 is the first major revision of ksh in five years.
Many of the changes for ksh-93 were made in order to conform
to the IEEE POSIX and ISO shell standards. In addition,
ksh-93 has many new programming features that vastly extend
the power of shell programming. It was revised to meet the
==========================================
Application Languages in Software Production
David A. Ladd
<ladd@research.att.com>
J. Christopher Ramming
<jcr@research.att.com>
AT&T Bell Laboratories
1 Introduction
PRL5 is an application-oriented language used to maintain the integrity of
databases in the AT&T 5ESSTM telecommunications switch. PRL5 is unusual
in that it was explicitly designed to eliminate a number of different coding
and inspection steps rather than simply to improve individual productivity.
Because PRL5 replaced an earlier high-level language named PRL, which in
turn replaced a combination of English and C on the same project, it is
possible to trace the effect of several fundamentally different languages on
this single project. The linguistic evolution has been away from languages
describing computation toward a "declarative" high-level language that has
been deliberately restricted to accommodate the requirements of certain
analyses.
Algorithms for checking database constraints are no longer specified by human
developers; instead, code is generated from static representations of the
constraints themselves. These constraint descriptions can be used in more
than one way, whereas a program to check constraints is useful only for
performing that particular computation. In effect, PRL5 allows the re-use of
project information at a high level, before it has been specialized into
particular implementations.
The effects of this re-use on quality, interval, and cost are tangible.
A key lesson is that application-oriented languages should not be designed to
describe computation, they should be designed to express useful facts from
which one or more computations can be derived.
==========================================
Using Tcl to Control a Computer-Participative Multimedia
Programming Environment
Christopher J. Lindblad
Telemedia Networks and Systems Group
Laboratory for Computer Science
Massachusetts Institute of Technology
Abstract
This paper describes how the VuSystem, a programming environment for
the development of computer-participative multimedia applications, is
controlled through Tcl scripts. In the VuSystem, networks of in-band
media-processing modules are created and controlled by interpreted
out-of-band Tcl scripts through object commands and callbacks. Tcl's
extensibility, simple type system, efficient interface to C, and
introspective capabilities are used by the VuSystem to produce a
highly dynamic and capable media processing system.
============================================
Using a Very High Level Language to Build Families of High
Quality Reusable Components
Gary F. Pollice
CenterLine Software, Inc. and
U. Massachusetts, Lowell
1 Introduction
While most programs are designed to perform a specific task, they have a
natural evolution over time; causing a single program to become a set of
programs that perform related tasks. In 1976 David Parnas introduced the
concept of a family of programs [11 ]. He suggests that any program should
be considered a member of a family of programs, all of which perform
related tasks. If one plans for change when a program is designed less
effort may be required to produce future revisions. Today there is an
emphasis on building software components for reuse. Components may be
designs, programs, functions, classes, or code segments. Major reuse
projects are in progress at several institutions, for example, the
Software Productivity Consortium and the Software Engineering Institute
[1,6 ]. Processes have been developed to introduce and support reuse
programs. The disciplines of domain engineering and software synthesis
emphasize creating families of components and developing tools to assist in
constructing them. Component generation is a prominent part of most
efforts.
============================================
A New Architecture for the Implementation of Scripting Languages
Computer Science Division
Electrical Engineering and Computer Sciences
University of California
Berkeley, CA 94720
{asah,blojo}@cs.Berkeley.EDU
September 12, 1994
Abstract
Nearly all scripting languages today are implemented as
interpreters written in C. We propose an alternate
architecture where the language is translated into the
dynamic language Scheme [R4RS]. The plethora of high
quality, public domain Scheme implementations give the
developer a wide selection of interpreters, byte
compilers, and machine code compilers to use as targets
for her VHLL.
Our VHLL, Rush, provides high-level features such as
automatic type conversion and production rules
[SHH86][Ston93]. Performance benchmarks show that our
system runs with acceptable speed; in fact, Rush programs
run much more quickly than their equivalents in languages
such as Tcl and Perl4. Whereas those languages are coded
in C, Rush takes advantage of Scheme's existing high-level
features, saving de- velopment time. Since the features
provided by Scheme are among those most VHLLs share, we
expect this approach to be widely applicable.
*supported in part by a grant from the National Science Foundation
#NSF-IRI9107455